﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

using Gra.Seguros.Servicio.Bl;
using Gra.Seguros.Servicio.Be;
using Gra.Seguros.Servicio.Ws.Be;

namespace Gra.Seguros.Servicio.Ws
{
    /// <summary>
    /// Descripción breve de WebServiceTest
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // Para permitir que se llame a este servicio Web desde un script, usando ASP.NET AJAX, quite la marca de comentario de la línea siguiente. 
    // [System.Web.Script.Services.ScriptService]
    public class WebServiceTest : System.Web.Services.WebService
    {

        [WebMethod]
        //public List<ClienteWs> listarClientes()
        //{
        //    ClienteBl obj = new ClienteBl();
        //    List<ClienteBe> lst = new List<ClienteBe>();
        //    lst = obj.listar();
        //    var lQuery = from c in lst
        //                 select new ClienteWs
        //                 {
        //                     cCliente = c.cCliente,
        //                     dCliente = (c.dNomCliente != "") ? c.dNomCliente + " " + c.dApeRazonCliente + "-" + c.cCliente : c.dApeRazonCliente + "-" + c.cCliente
        //                 };
        //    return lQuery.ToList();
        //}

        //}

        //public List<AseguradoraWs> listarAseguradoras()
        //{
        //    AseguradoraBl obj = new AseguradoraBl();
        //    List<AseguradoraBe> lst = new List<AseguradoraBe>();
        //    lst = obj.listar();
        //    var lQuery = from c in lst
        //                 select new AseguradoraWs
        //                 {
        //                     cAseguradora=c.cAseguradora,
        //                     dAseguradora=c.dAseguradora                            
        //                 };
        //    return lQuery.ToList();
        //}

        //public List<MatrizDecisionWs> listarMatriz(int _cTipoSeguro, int _cRamo, int _cAseguradora)
        //{
        //    MatrizDecisionBl obj = new MatrizDecisionBl();
        //    List<MatrizDecisionBe> lst = new List<MatrizDecisionBe>();
        //    lst = obj.listar(_cTipoSeguro,  _cRamo, _cAseguradora);
        //    var lQuery = from c in lst
        //                 select new MatrizDecisionWs
        //                 {
        //                     cMatrizc= c.cMatrizC,
        //                     cRamo=c.oRamo.cRamo,
        //                     cAseguradora=c.oAseguradora.cAseguradora
        //                 };
        //    return lQuery.ToList();
        //}

        //public List<EventoWs> listarEventos(int _cClaseEvento)
        //{
        //    EventoBl obj = new EventoBl();
        //    List<EventoBe> lst = new List<EventoBe>();
        //    lst = obj.listar(_cClaseEvento);
        //    var lQuery = from c in lst
        //                 select new EventoWs
        //                 {
        //                     cClaseEvento=c.oClaseEvento.cClaseEvento,
        //                     cEvento=c.cEvento,
        //                     dEvento=c.dEvento,
        //                     nValMax=c.nValMax,
        //                     nValMin=c.nValMin,
        //                     nValIntervalo=c.nIntervalo,
        //                     dValorDefecto=c.dValorDefecto
        //                 };
        //    return lQuery.ToList();
        //}


        //public List<PlanSeguroWs> listarPlanSeguro_Ramo(int _cAseguradora, int _cRamo)
        //{
        //    PlanSeguroBl obj = new PlanSeguroBl();
        //    List<PlanSeguroBe> lst = new List<PlanSeguroBe>();
        //    lst = obj.listarPlanSeguroxRamo(_cAseguradora, _cRamo);
        //    var lQuery = from c in lst
        //                 select new PlanSeguroWs
        //                 {
        //                     cPlanSeguro=c.cPlan,
        //                     dPlanSeguro=c.dPlan
        //                 };
        //    return lQuery.ToList();
        //}

        //public List<PCTComisionWs> listar(int _cAseguradora)
        //{
        //    PCTComisionBl obj = new PCTComisionBl();
        //    List<PCTComisionBe> lst = new List<PCTComisionBe>();
        //    lst = obj.listar(_cAseguradora);
        //    var lQuery = from c in lst
        //                 select new PCTComisionWs
        //                 {
        //                     cComision=c.cComision,
        //                     PCTComision=c.PCTComision
        //                 };
        //    return lQuery.ToList();
        //}

        //public List<VendedorWs> listar()
        //{
        //    VendedorBl obj = new VendedorBl();
        //    List<VendedorBe> lst = new List<VendedorBe>();
        //    lst = obj.listar();
        //    var lQuery = from c in lst
        //                 select new VendedorWs
        //                 {
        //                    cVendedor=c.cVendedor,
        //                    dVendedor=c.dVendedor
        //                 };
        //    return lQuery.ToList();
        //}

        //public List<MonedaWs> listar()
        //{
        //    MonedaBl obj = new MonedaBl();
        //    List<MonedaBe> lst = new List<MonedaBe>();
        //    lst = obj.listar();
        //    var lQuery = from c in lst
        //                 select new MonedaWs
        //                 {
        //                     cMoneda = c.cMoneda,
        //                     dMoneda = c.dMoneda,
        //                     dSimbolo=c.dSimbolo
        //                 };
        //    return lQuery.ToList();
        //}

        //public List<ClienteWs> listar(string _Tipodocumento , string _numerodocumento)
        //{
        //    ClienteBl obj = new ClienteBl();
        //    List<ClienteBe> lst = new List<ClienteBe>();
        //    lst = obj.listarPersonaNatural (_Tipodocumento, _numerodocumento);
        //    var lQuery = from c in lst
        //                 select new ClienteWs
        //                 {
        //                     cCliente=c.cCliente,
        //                     dCliente=c.dApeRazonCliente
                             
        //                 };
        //    return lQuery.ToList();
        //}

        //public List<PolizaWs> listarPoliza(string _cPoliza, string _fCreacionInicio, string _fCreacionFin, string _cCliente, string _cTipoSeguro, string _cRamo, string _cEjecutivo, string _cEstado)
        //{
        //    PolizaBl obj = new PolizaBl();
        //    List<PolizaBe> lst = new List<PolizaBe>();
        //    lst = obj.listar(Convert.ToInt32(_cPoliza), _fCreacionInicio, _fCreacionFin, Convert.ToInt32(_cCliente), Convert.ToInt32(_cTipoSeguro), Convert.ToInt32(_cRamo), Convert.ToInt32(_cEjecutivo), Convert.ToInt32(_cEstado));

        //    var lQuery = from c in lst
        //                 select new PolizaWs
        //                 {
        //                     cPoliza = c.cPoliza,
        //                     fEmision = c.fEmision,
        //                     cRecepcionDocumento = c.cRecepcionDocumento,
        //                     cCliente = c.oCliente.cCliente,
        //                     dNombreCliente = (c.oCliente.dNomCliente != "") ? c.oCliente.dNomCliente + " " + c.oCliente.dApeRazonCliente : c.oCliente.dApeRazonCliente,
        //                     cEjecutivo = c.oEjecutivo.cEjecutivo,
        //                     dNombreEjecutivo = c.oEjecutivo.dNombre + " " + c.oEjecutivo.dApellido,
        //                     cRamo = c.oRamo.cRamo,
        //                     dRamo = c.oRamo.dRamo,
        //                     cEstadoPoliza = c.oEstadoPoliza.cEstadoPoliza,
        //                     dEstadoPoliza = c.oEstadoPoliza.dEstadoPoliza
        //                 };
        //    return lQuery.ToList();
        //}

        //public string registarPoliza(PolizaWs _PolizaWs, FinanciamientoWs _FinanciamientoWs)
        //{
        //    string _msgReg = "";
        //    PolizaBl obj = new PolizaBl();
        //    PolizaBe _objCab = new PolizaBe();
        //    _objCab.oCliente = new ClienteBe();
        //    _objCab.oCliente.TipoDocumento = new TipoDocumentoBe();
        //    _objCab.oCliente.TipoDocumento.cTipoDocumento = _PolizaWs.cTipoDocumento;
        //    _objCab.oCliente.nNroDocumento = _PolizaWs.nNroDocumento;
        //    _objCab.cPolizaSBS = _PolizaWs.cPolizaSBS;
        //    _objCab.fEmision = _PolizaWs.fEmision;
        //    _objCab.fInicioVigencia = _PolizaWs.fInicioVigencia;
        //    _objCab.fFinVigencia = _PolizaWs.fFinVigencia;
        //    _objCab.oMoneda = new MonedaBe();
        //    _objCab.oMoneda.cMoneda = _PolizaWs.cMoneda;
        //    _objCab.nMontoAsegurado = _PolizaWs.nMontoAsegurado;
        //    _objCab.nComision = _PolizaWs.nComision;
        //    _objCab.nComisionVen = _PolizaWs.nComisionVen;
        //    _objCab.nPrima = _PolizaWs.nPrima;
        //    _objCab.nDerEmis1 = _PolizaWs.nDerEmis1;
        //    _objCab.nTotal = _PolizaWs.nTotal;
        //    _objCab.oComisionCia = new PCTComisionBe();
        //    _objCab.oComisionCia.cComision = _PolizaWs.cComisionCia;
        //    _objCab.oComisionVen = new PCTComisionVenBe();
        //    _objCab.oComisionVen.cComisionVen = _PolizaWs.cComisionVen;
        //    _objCab.oCotizacion.cCotizacion = _PolizaWs.cCotizacion;
        //    _objCab.oAseguradora.cAseguradora = _PolizaWs.cAseguradora;
        //    _objCab.oEjecutivo = new EjecutivoBe();
        //    _objCab.oEjecutivo.cEjecutivo = _PolizaWs.cEjecutivo;
        //    _objCab.oRamo = new RamoBe();
        //    _objCab.oRamo.cRamo = _PolizaWs.cRamo;
        //    _objCab.oFormaPago = new FormaPagoBe();
        //    _objCab.oFormaPago.cFormaPago = _PolizaWs.cFormaPago;
        //    _objCab.dUCreacion = _PolizaWs.dUCreacion;
        //    _objCab.oEstadoPoliza = new EstadoPolizaBe();
        //    _objCab.oEstadoPoliza.cEstadoPoliza = _PolizaWs.cEstadoPoliza;
        //    _objCab.oRenovacion.cRenovacion = _PolizaWs.cRenovacion;
        //    _objCab.cRecepcionDocumento = _PolizaWs.cRecepcionDocumento;
        //    _objCab.nCuota = _PolizaWs.nCuota;

        //    FinancimientoBe _objDet = new FinancimientoBe();
        //    _objDet.nCuota = _FinanciamientoWs.nCuota;
        //    _objDet.nCuotaInicial = _FinanciamientoWs.nCuotaInicial;
        //    _objDet.nImpCuota = _FinanciamientoWs.nImpCuota;
        //    _objDet.fVencimiento = _FinanciamientoWs.fVencimiento;

        //    _msgReg = obj.registrarPoliza(_objCab, _objDet);
        //    return _msgReg;
        //}



        //public List<PolizaWs> listarPolizaxnumPoliza(string _Poliza)
        //{
        //    PolizaBl obj = new PolizaBl();
        //    List<PolizaBe> lst = new List<PolizaBe>();
        //    lst = obj.listarPoliza(Convert.ToDecimal(_Poliza));
        //    var lQuery = from c in lst
        //                 select new PolizaWs
        //                 {
        //                     cPoliza = c.cPoliza,
        //                     cPolizaSBS = c.cPolizaSBS,
        //                     fEmision = c.fEmision,
        //                     fInicioVigencia = c.fInicioVigencia,
        //                     fFinVigencia = c.fFinVigencia,
        //                     cMoneda = c.oMoneda.cMoneda,
        //                     nMontoAsegurado = c.nMontoAsegurado,
        //                     nComision = c.nComision,
        //                     nComisionVen = c.nComisionVen,
        //                     nPrima = c.nPrima,
        //                     nDerEmis1 = c.nDerEmis1,
        //                     nTotal = c.nTotal,
        //                     nCuota = c.nCuota,
        //                     cCliente = c.oCliente.cCliente,
        //                     cComisionCia = c.oComisionCia.cComision,
        //                     cComisionVen = c.oComisionVen.cComisionVen,
        //                     cCotizacion = c.oCotizacion.cCotizacion,
        //                     cAseguradora = c.oAseguradora.cAseguradora,
        //                     cEjecutivo = c.oEjecutivo.cEjecutivo,
        //                     cRamo = c.oRamo.cRamo,
        //                     cFormaPago = c.oFormaPago.cFormaPago,
        //                     dUCreacion = c.dUCreacion,
        //                     cEstadoPoliza = c.oEstadoPoliza.cEstadoPoliza,
        //                     cRenovacion = c.oRenovacion.cRenovacion,
        //                     cRecepcionDocumento = c.cRecepcionDocumento


        //                 };
        //    return lQuery.ToList();
        //}

        //public List<RenovacionWs> listarRenovacion()
        //{
        //    RenovacionBl obj = new RenovacionBl();
        //    List<RenovacionBe> lst = new List<RenovacionBe>();
        //    lst = obj.listar();
        //    var lQuery = from c in lst
        //                 select new RenovacionWs
        //                 {
        //                     cRenovacion = c.cRenovacion,
        //                     dRenovacion = c.dRenovacion
        //                 };
        //    return lQuery.ToList();
        //}

        //public string actualizarPoliza(PolizaWs _PolizaWs)
        //{
        //    string _msgReg = "";
        //    PolizaBl obj = new PolizaBl();
        //    PolizaBe _objCab = new PolizaBe();
        //    _objCab.cPoliza = _PolizaWs.cPoliza;
        //    _objCab.oCliente = new ClienteBe();
        //    _objCab.oCliente.TipoDocumento = new TipoDocumentoBe();
        //    _objCab.oCliente.TipoDocumento.cTipoDocumento = _PolizaWs.cTipoDocumento;
        //    _objCab.oCliente.nNroDocumento = _PolizaWs.nNroDocumento;
        //    _objCab.cPolizaSBS = _PolizaWs.cPolizaSBS;
        //    _objCab.fEmision = _PolizaWs.fEmision;
        //    _objCab.fInicioVigencia = _PolizaWs.fInicioVigencia;
        //    _objCab.fFinVigencia = _PolizaWs.fFinVigencia;
        //    _objCab.oMoneda = new MonedaBe();
        //    _objCab.oMoneda.cMoneda = _PolizaWs.cMoneda;
        //    _objCab.nMontoAsegurado = _PolizaWs.nMontoAsegurado;
        //    _objCab.nComision = _PolizaWs.nComision;
        //    _objCab.nComisionVen = _PolizaWs.nComisionVen;
        //    _objCab.nPrimaNeta = _PolizaWs.nPrimaNeta;
        //    _objCab.nDerEmis1 = _PolizaWs.nDerEmis1;
        //    _objCab.nTotal = _PolizaWs.nTotal;
        //    _objCab.oComisionCia = new PCTComisionBe();
        //    _objCab.oComisionCia.cComision = _PolizaWs.cComisionCia;
        //    _objCab.oComisionVen = new PCTComisionVenBe();
        //    _objCab.oComisionVen.cComisionVen = _PolizaWs.cComisionVen;
        //    _objCab.oCotizacion = new CotizacionBe();
        //    _objCab.oCotizacion.cCotizacion = _PolizaWs.cCotizacion;
        //    _objCab.oAseguradora = new AseguradoraBe();
        //    _objCab.oAseguradora.cAseguradora = _PolizaWs.cAseguradora;
        //    _objCab.oEjecutivo = new EjecutivoBe();
        //    _objCab.oEjecutivo.cEjecutivo = _PolizaWs.cEjecutivo;
        //    _objCab.oRamo = new RamoBe();
        //    _objCab.oRamo.cRamo = _PolizaWs.cRamo;
        //    _objCab.oFormaPago = new FormaPagoBe();
        //    _objCab.oFormaPago.cFormaPago = _PolizaWs.cTipoPago;
        //    _objCab.dUCreacion = _PolizaWs.dUCreacion;
        //    _objCab.oEstadoPoliza = new EstadoPolizaBe();
        //    _objCab.oEstadoPoliza.cEstadoPoliza = _PolizaWs.cEstadoPoliza;
        //    _objCab.oRenovacion = new RenovacionBe();
        //    _objCab.oRenovacion.cRenovacion = _PolizaWs.cRenovacion;
        //    _objCab.cRecepcionDocumento = _PolizaWs.cRecepcionDocumento;


        //    //FinancimientoBe _objDet = new FinancimientoBe();
        //    //_objDet.nCuota = _PolizaWs.nCuota;
        //    //_objDet.nCuotaInicial = _PolizaWs.nCuotaInicial;
        //    //_objDet.nImpCuota = _PolizaWs.nImpCuota;
        //    //_objDet.fVencimiento = _PolizaWs.fVencimiento;

        //    //_msgReg = obj.actualizarPoliza(_objCab, _objDet);
        //    _msgReg = obj.actualizarPoliza(_objCab);
            
        //    return _msgReg;

        //}   

        //public List<CotizacionWs> listarCotizacionxClientexRamoPendientes(string _cTipoDocumento, string _nNroDocumento, string _cRamo)
        //{
        //    CotizacionBl obj = new CotizacionBl();
        //    List<CotizacionBe> lst = new List<CotizacionBe>();
        //    lst = obj.listarxClientexRamoPendiente(_cTipoDocumento, _nNroDocumento, Convert.ToInt32(_cRamo));
        //    var lQuery = from c in lst
        //                 select new CotizacionWs
        //                 {
        //                     cCotizacion = c.cCotizacion,
        //                     dCotizacion = c.dCotizacion,
        //                     cCliente = c.Cliente.cCliente
        //                 };
        //    return lQuery.ToList();
        //}


        //public List<SiniestroWs> listarClientePolizaSiniestro(string _cCliente)
        //{
        //    SiniestroBl obj = new SiniestroBl();
        //    List<SiniestroBe> lst = new List<SiniestroBe>();
        //    lst = obj.listar(Convert.ToInt32(_cCliente));
        //    var lQuery = from c in lst
        //                 select new SiniestroWs
        //                 {
        //                     cSiniestro = c.cSiniestro,
        //                     nSiniestro = c.nSiniestro,
        //                     nSiniestroCia = c.nSiniestroCia,
        //                     dAjustador = c.dAjustador,
        //                     dSiniestro = c.dSiniestro,
        //                     dCausa = c.dCausa,
        //                     fDenuncia = c.fDenuncia,
        //                     fCierre = c.fCierre,
        //                     nPresupuesto = c.nPresupuesto,
        //                     nPagado = c.nPagado,
        //                     nAproximado = c.nAproximado,
        //                 };
        //    return lQuery.ToList();
        //}

        //public List<PolizaWs> listarClientePoliza(string _cCliente)
        //{
        //    PolizaBl obj = new PolizaBl();
        //    List<PolizaBe> lst = new List<PolizaBe>();
        //    lst = obj.listarPolizaxCliente(Convert.ToInt32(_cCliente));
        //    var lQuery = from c in lst
        //                 select new PolizaWs
        //                 {
        //                     cPoliza = c.cPoliza,
        //                     nroPoliza = c.nroPoliza,
        //                     cPolizaSBS = c.cPolizaSBS,
        //                     dAseguradora = c.oAseguradora.dAseguradora,
        //                     fEmision = c.fEmision,
        //                     fInicioVigencia = c.fInicioVigencia,
        //                     fFinVigencia = c.fFinVigencia,
        //                     nPrimaNeta = c.nPrimaNeta,
        //                     dEstadoPoliza = c.oEstadoPoliza.dEstadoPoliza,
        //                 };
        //    return lQuery.ToList();
        //}

        //public List<PolizaWs> listarClientePolizaCronograma(string _cCliente, string _cPoliza)
        //{
        //    PolizaBl obj = new PolizaBl();
        //    List<PolizaBe> lst = new List<PolizaBe>();
        //    lst = obj.listarPolizaCronogramaxCliente(Convert.ToInt32(_cCliente), Convert.ToInt32(_cPoliza));
        //    var lQuery = from c in lst
        //                 select new PolizaWs
        //                 {
        //                     cPoliza = c.cPoliza,
        //                     nroPoliza = c.nroPoliza,
        //                     fvencimiento = c.fvencimiento,
        //                     nCuota = c.nCuota,
        //                     nCuotaInicial = c.nCuotaInicial,
        //                     nimpcuota = c.nimpcuota,
        //                     dEstadoPago = c.dEstadoPago,
        //                     fPago = c.fPago,
        //                 };
        //    return lQuery.ToList();
        //}

      public List<VisitaWs> listarClientePolizaVisita(string _cCliente)
        {
            VisitaBl obj = new VisitaBl();
            List<VisitaBe> lst = new List<VisitaBe>();
            lst = obj.listar(Convert.ToInt32(_cCliente));
            var lQuery = from c in lst
                         select new VisitaWs
                         {
                            cVisita = c.cVisita,
                            cEjecutivo = c.oEjecutivo.cEjecutivo,
                            dEjecutivo=c.oEjecutivo.dNombre,
                            fAtencion=c.fAtencion,
                            dResultado=c.dResultado,
                            dTipoResultado=c.dTipoResultado,
                            cEstadoVisita=c.cEstadoVisita,
                            dEstadoVisita=c.dEstadoVisita,                           
                         };
            return lQuery.ToList();
        }

        }
    }
